public function mutable($props)
	{
		$props = call_user_func_array(array($this, 'flattenArguments'), func_get_args()); 
		$collect = $unknown = [];

		foreach ($props as $prop) {
			if (!property_exists(AbstractGenerator::class, $prop)) {
				array_push($unknown, $prop);
				continue;
			}

			array_push($collect, $prop);
		}

		if (!empty($unknown)) {

			throw new InvalidArgumentException(sprintf("Cannot add unknown %s to mutables collection ('%s').", (count($unknown) > 1) ? 'properties' : 'property', join("', '", $unknown)));
			
		}
		
		$this->mutables = array_merge(array_diff($this->mutables, $collect), $collect);
		
		return $this;
	}