Updated User and abstract classes