memory peak usage: 23.41 MB