memory peak usage: 20.73 MB