refactoring and adding a simple signup