refactor current_user