final private function loadFromDb($key) {
		
		// inherited class
		$class = get_called_class();
		
		// build the SQL where line
		$where = ' WHERE ' . implode(' AND ', $this->getSqlKeyConditions());
		
		// load the requested record
		$query = 'SELECT * FROM `' . $class::TABLE_NAME . '`' . $where . ' LIMIT 1';
		$this->db->setQuery($query);
		$obj = $this->db->loadObject($key);

		// if db record exists, will populate the object properties
		if (is_object($obj)) {
			
			$this->populate($obj);
			$this->loadedFromDb = TRUE;

		} else {
			
			$this->loadedFromDb = FALSE;
			
		}
		
	}