This class has no clearly defined responsibilities. Which is an indication that it is doing way too much. The meaning of this class is completely different depending on what you pass to the constructor. Maybe you pass `$config`, maybe you pass `$mainPackage` and `$localRepo`. Nobody knows, really.