https://medium.com/@alexandragrosu03/the-pragmatic-programmers-guide-to-memory-management-559c4711be99