memory peak usage: 21.46 MB