@Override
    public Iterable<EntityRef> getEntitiesWithComponents(Class<? extends Component> component, Class<? extends Component>... additionalComponents) {
        return Iterables.transform(Iterables.filter(entities,
                entity -> {
                    if (!entity.entityValues.containsKey(component))
                        return false;

                    for (Class<? extends Component> additionalComponent : additionalComponents) {
                        if (!entity.entityValues.containsKey(additionalComponent))
                            return false;
                    }

                    return true;
                }),
                entity -> createSimpleEntityRef(entity, false));
    }