Initial Commit
Main things are implemented