public function add($object){

        if(is_array($object)) {
            $this->responses = array_merge($this->responses, $object);
        } else {
            $implementedInterfaces = class_implements($object);

            if(array_key_exists("WasabiLib\Ajax\ResponseConfiguratorInterface", $implementedInterfaces)) {
                $object->configure();
//                $this->responses = array_merge($this->responses, $object->getResponseTypes());
                foreach($object->getResponseTypes() as $responseType){
                    $implementedInterfacesInResponseType = class_implements($responseType);

                    if(array_key_exists("WasabiLib\Ajax\ResponseConfiguratorInterface", $implementedInterfacesInResponseType)) {
                        $this->add($responseType);
                    }
                    else{
                        $this->responses[]=$responseType;
                    }
                }
            } else if(array_key_exists("WasabiLib\Ajax\ResponseTypeInterface", $implementedInterfaces)) {
                $this->responses[] = $object;
            } else {
                throw new InvalidArgumentException("Invalid parameter type! Given value must be an array or implements the interfaces ResponseConfiguratorInterface or ResponseTypeInterface");
            }
        }
    }