memory peak usage: 23.22 MB