memory peak usage: 21.42 MB