added signup functionality, about to refactor