memory peak usage: 18.48 MB