full control of memory allocation
gitignore