adds user signup functionality
adds tests for user signup