Removed all circular dependencies, converted all 'send' to use deferred style