memory peak usage: 20.75 MB