Add gitignore file
Major refactor of code, add unit testing