memory peak usage: 21.05 MB