memory peak usage: 19.55 MB