memory peak usage: 21.43 MB