memory peak usage: 16.78 MB