public function fetch($mappingType = null) {
		list($query, $args) = $this->build();

		//generate a mapper instance
		if (is_null($mappingType))
			$mapper = empty($this->config) ? $this->fluent->getMapper() : $this->fluent->getMapper()->merge($this->config);
		else {
			$config = empty($this->config) ? ['map.type' => $mappingType] : array_merge($this->config, ['map.type' => $mappingType]);
			$mapper = $this->fluent->getMapper()->merge($config);
		}
		
		return empty($args) ? $mapper->query($query) : $mapper->execute($query, $args);
	}