user roles fix, refactor