Added a TargetInterface, minor changes to other classes