add signup and signin function