memory peak usage: 16.61 MB