memory peak usage: 23.07 MB