memory peak usage: 16.11 MB