Throw an error if any dependencies are missing
Error earlier if component already loaded
Throw error if there are circular dependencies