Add smart pointer, update gitignore and Makefile