memory peak usage: 17.32 MB