half functions