Implement fundemental operations
Reorganise .gitignore