memory peak usage: 23.58 MB