public function copy($directory) {

		if(false === is_dir($directory)) {
			return trigger_error(sprintf('Directory "%s" passed to %s is not an existing directory', $directory, __METHOD__), E_USER_ERROR);
		}

		if(false === is_writable($directory)) {
			return trigger_error(sprintf('Directory "%s" passed to %s is not writable', $directory, __METHOD__), E_USER_ERROR);
		}

		if(false !== $this -> directory -> getExists()) {
			$this -> rcopy($this -> directory -> getPath(), $directory);
		}

		return $this;
	}