HasThreat needs to be abastract