public function addAttribute($attribute) {
      $args = func_get_args();
      $cl = get_class($this);
      if (is_array($attribute))
        $attribute = new BaMLAttribute($attribute[0], $attribute[1]);
      if (is_string($attribute))
        $attribute = new BaMLAttribute($args[0], $args[1]);
      if (!($attribute instanceof BaMLAttribute))
        throw new \CatapultApiException("You can only add type BaMLAttribute or array..");
      if (isset($cl::$params) && !(in_array($attribute->getKey(), $cl::$params)) && sizeof($cl::$params) > 0)
        throw new \CatapultApiException("attribute '" . $attribute->getKey() . "' is not a valid attribute for verb " . $this->getName() . "" . " please use any of the following: " . $this->printAttributes());
      $this->attributes[] = $attribute;
    }