@Override
 public Iterable<Component> iterateComponents() {
   if (exists()) {
     return entityManager.iterateComponents(id);
   }
   return NullIterator.newInstance();
 }
 @Override
 public <T extends Component> T addComponent(T component) {
   if (exists()) {
     return entityManager.addComponent(id, component);
   }
   return component;
 }
 @Override
 public <T extends Component> T getComponent(Class<T> componentClass) {
   if (exists()) {
     return entityManager.getComponent(id, componentClass);
   }
   return null;
 }
 @Override
 public boolean hasComponent(Class<? extends Component> component) {
   return exists() && entityManager.hasComponent(id, component);
 }
 @Override
 public void send(Event event) {
   if (exists()) {
     entityManager.getEventSystem().send(this, event);
   }
 }
 @Override
 public void destroy() {
   if (exists()) {
     entityManager.destroy(id);
   }
 }
 @Override
 public void saveComponent(Component component) {
   if (exists()) {
     entityManager.saveComponent(id, component);
   }
 }
 @Override
 public void removeComponent(Class<? extends Component> componentClass) {
   if (exists()) {
     entityManager.removeComponent(id, componentClass);
   }
 }