memory peak usage: 16.66 MB