refactoring + improved custom UserDetailsService implementation + improved layout