Refactored to allow for managed sources (which load their own dependencies and then signal when they're completed).