public function addPaymentProfile($cardType, $cardEnding, $cardName, $legatoCode)
 {
     if (AvailablePaymentMethodsData::hasCreditCard()) {
         $beanStream = new Gateway(_PAYMENT_MERCHANT_NUMBER_, _PAYMENT_PROFILE_API_KEY_, 'www', 'v1');
         $profile_create_token = array('token' => array('name' => $cardName, 'code' => $legatoCode));
         if (_BEAN_STREAM_PRODUCTION_) {
             try {
                 $beanStreamProfileID = $beanStream->profiles()->createProfile($profile_create_token);
                 return AuthUserPaymentProfilesData::insertPaymentProfile($this->userID, $cardType, $cardEnding, $cardName, $beanStreamProfileID);
             } catch (Exception $e) {
                 // todo: record failure somewhere
                 file_put_contents('BeanStreamError.txt', print_r($e, true));
                 return false;
             }
         } else {
             return AuthUserPaymentProfilesData::insertPaymentProfile($this->userID, $cardType, $cardEnding, $cardName, uniqid());
         }
     } else {
         return false;
     }
 }