username & email refactor