memory peak usage: 21.75 MB