memory peak usage: 21.85 MB