public function get_records(array $filter=null, $orderBy=null, $limit=null, $offset=null) {
		$data = null;
		$limitOffsetStr = '';
		if(is_numeric($limit) && $limit > 0) {
			$limitOffsetStr = ' LIMIT '. $limit;
			
			//While it appears to be acceptable to provide an offset without a limit, it seems ridiculous to me.
			if(is_numeric($offset) && $offset > 0) {
				$limitOffsetStr .= ' OFFSET '. $offset;
			}
		}
		
		$orderByStr = ' ORDER BY '. $this->pkeyField;
		if(is_string($orderBy) && strlen($orderBy)) {
			$orderByStr = ' ORDER BY '. $orderBy;
		}
		
		$filterStr = '';
		$params = array();
		$filterStr = "";
		if(is_array($filter) && count($filter) > 0) {
			foreach($filter as $field=>$value) {
				$filterStr = ToolBox::create_list($filterStr, $field .'=:'. $field, ' AND ');
				$params[$field] = $value;
			}
			$filterStr = ' WHERE ' . $filterStr;
		}
		
		$sql = 'SELECT * FROM '. $this->tableName . $filterStr . $orderByStr . $limitOffsetStr;
		try {
			$numRows = $this->dbObj->run_query($sql, $params);
			if($numRows > 0) {
				$data = $this->dbObj->farray_fieldnames($this->pkeyField);
			}
		}
		catch(Exception $e) {
			throw new Exception(__METHOD__ .":: failed to retrieve records, DETAILS::: ". $e->getMessage());
		}
		return($data);
	}