public RODResponseMessage Post(handle login)
        {
            RODResponseMessage msg = new RODResponseMessage();

            if (login.publicKey.Length <= 4)
            {
                msg.result = 0;
                msg.message = "Unable to login. Please re-type your private key (case sensitive.)";
                return msg;
            }

            handle og = (from m in db.handles
                         where m.name == login.name.ToLower() && m.active == 1 && m.privateKey.StartsWith(login.publicKey)
                         select m).FirstOrDefault();

            if(og != null && Membership.ValidateUser(og.publicKey, og.privateKey)) {
                FormsAuthentication.SetAuthCookie(og.publicKey, true);
                msg.result = 1;
                msg.message = og.privateKey;
            } else {
                msg.result = 0;
                msg.message = "Unable to login. Please re-type your private key (case sensitive.)";
            }

            return msg;
        }
        // GET api/tagline
        // get current user tagline
        public handle Get()
        {
            handle tagline = new handle();
            tagline.id = -1;

            if (User.Identity.IsAuthenticated)
            {
                string user_id = User.Identity.Name;
                tagline = (from handle r in db.handles where r.userGuid.Equals(User.Identity.Name) select r).FirstOrDefault();
            }

            return tagline;
        }
        // POST api/values
        public RODResponseMessage Post(handle check_handle)
        {
            handle currently_exists = (from m in db.handles where m.name.Equals(check_handle.name) && m.active == 1 select m).FirstOrDefault();

            // always return handle name so the client knows which response
            // they are getting

            if (currently_exists == null)
            {
                return new RODResponseMessage { message = check_handle.name, result = 1 };
            }
            else
            {
                return new RODResponseMessage { message = check_handle.name, result = 0 };
            }
        }
        // POST api/values
        public handle Post(handle value)
        {
            handle error = new handle();
            error.active = -1;
            error.name = "There was an error.";

            if (value != null)
            {
                handle currently_exists = (from m in db.handles where m.name.Equals(value.name) && m.active == 1 select m).FirstOrDefault();

                if (currently_exists == null)
                {

                    handle safe_handle = new handle();
                    Guid public_key = Guid.NewGuid();
                    Guid private_key = Guid.NewGuid();

                    // Attempt to register the user
                    MembershipCreateStatus createStatus;
                    Membership.CreateUser(public_key.ToString(), private_key.ToString(), "anon", null, null, true, null, out createStatus);

                    if (createStatus == MembershipCreateStatus.Success)
                    {
                        FormsAuthentication.SetAuthCookie(public_key.ToString(), true /* createPersistentCookie */);
                        safe_handle.name = value.name;
                        safe_handle.userGuid = public_key.ToString();
                        safe_handle.active = 1;
                        // free handle yay

                        safe_handle.publicKey = public_key.ToString();
                        safe_handle.privateKey = private_key.ToString();

                        // send email about it

                        MailMessage Message = new MailMessage();
                        SmtpClient Smtp = new SmtpClient();

                        string password = System.Web.Configuration.WebConfigurationManager.AppSettings["MailPassword"];

                        System.Net.NetworkCredential SmtpUser = new System.Net.NetworkCredential("*****@*****.**", password);

                        string email = "new handle registered: \n\n";
                        email = safe_handle.name + "\n\n";

                        Message.From = new MailAddress("*****@*****.**");
                        Message.To.Add(new MailAddress("*****@*****.**"));
                        Message.IsBodyHtml = false;
                        Message.Subject = "new handle";
                        Message.Body = email;
                        Message.Priority = MailPriority.Normal;
                        Smtp.EnableSsl = false;

                        Smtp.Credentials = SmtpUser;
                        Smtp.Host = "198.57.199.92";
                        Smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                        Smtp.Port = 26;

                        Smtp.Send(Message);

                        db.handles.Add(safe_handle);
                        db.SaveChanges();
                        return safe_handle;
                    }
                    else
                    {
                        return error;
                    }

                }
                else
                {

                    handle taken = new handle();
                    taken.active = 0;
                    taken.name = value.name;
                    return taken;

                }

            }

            return error;
        }