Adding all the classes and code