A working HUD, implemented IUnitListener to make it more efficient