memory peak usage: 21.76 MB