added abstract class UserStore