memory peak usage: 23.54 MB