memory peak usage: 20.24 MB