memory peak usage: 18.88 MB