make user implement UserDetailsService