makeSlaveForTarget -> getSlaveForTarget
Use Reason type where applicable
TODO
Add loop detection