memory peak usage: 20.15 MB