memory peak usage: 17.16 MB