Add gitignore
Create initial high level abstraction