memory peak usage: 23.02 MB