memory peak usage: 21.44 MB