memory peak usage: 17.66 MB