memory peak usage: 17.13 MB