code: @Override public void bindServices(@NonNull Services.Binder services) {
      Object key = services.getKey();
      if (key.equals(new ContactsUiKey())) {
        // Setting up the ContactsUiKey means providing storage for Contacts.
        services.bind(CONTACTS_STORAGE, new ContactsStorage());
      } else if (key instanceof EditContactKey) {
        // Setting up the EditContactKey key means providing an editor for the contact.
        // This editor can be shared among any keys that have the EditContactKey as parent/ancestor!
        final String contactId = ((EditContactKey) key).contactId;
        ContactsStorage storage = services.getService(CONTACTS_STORAGE);
        Contact contact = storage.getContact(contactId);
        services.bind(CONTACT_EDITOR, new ContactEditor(contact));
      }
    }
docs: a Dagger graph or Mortar scope!