memory peak usage: 19.65 MB