memory peak usage: 21.40 MB