memory peak usage: 17.83 MB