ha logic