refine HAL support