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