Initial Commit

Initial Commit with all the basic functionality.