memory peak usage: 20.28 MB