Add some exceptions for clarity of state.
Add some additional plumbing for managing destinations.