added User class with implementation (not tested)