refactored signup