Split TargetLogic into three classes and adjusted all classes to itneract with the new ones.