memory peak usage: 23.87 MB