refactor to tease apart HA from regular