add signup functionality and routes