Feels a bit strange to have the method account_type return valid.  Feels like it should return 'email' or 'canonical' and valid_account? should return true if it matches either of those.