Added User classes and refactored all the classes