class Context implements IContext<TEntity> {

    protected void onEntityReleased(TEntity entity) {
        if (entity.isEnabled()) {
            throw new EntityIsNotDestroyedException("Cannot release " + entity);
        }
        entity.removeAllOnEntityReleasedHandlers();
        _retainedEntities.remove(entity);
        _reusableEntities.push(entity);
    }

    public  Context(int totalComponents, int startCreationIndex, ContextInfo contexInfo,
                   EntityBaseFactory<TEntity> factoryMethod, Function<TEntity, IAERC> aercFactory);

}