function query($sql, $returnType) {
		if($this->prepared == false) {
			$this->prepare($sql);
		}
		//echo "\n SQL call = " . $sql . "\n";
		
		$this->queries[] = $sql;
		$this->result = $this->connection->query($sql);
		
		//D::log($this->connection->error, 'db error');
		D::log($sql, 'Sql call');
		if(!empty($this->connection->error)) {
			D::report('There is something wrong with the sql.', $this->connection->error);
		}

		$this->prepared = false;
		
		//return $this->result->fetch_all(MYSQLI_ASSOC);
		$return = array();
		
		switch ($returnType){
			case 'object':
				while($value = $this->result->fetch_object()) {
					$return[] = $value;
				}
				//D::log($return);
				return $return;
			case 'assoc':
				while($value = $this->result->fetch_assoc()) {
					$return[] = $value;
				}
				return $return; 
			case 'raw':
				return $this->result;
			default:
				return true;
		}
		
	}