fixed HAL base class