Initial implementation

Please ignore these files with .gitignore