memory peak usage: 20.52 MB