static void init(DustKernelEnvironment env) {
    DataWrapper.Factory factDataWrapper = new ReflectFactoryWrapper.Data();
    LogicWrapper.Factory factLogicWrapper = new ReflectFactoryWrapper.Logic();

    ReflectFactoryLogic factLogic = new ReflectFactoryLogic();
    factLogic.registerClass(KStreamWrite.ID, DustStreamWriter.class.getName());
    factLogic.registerClass(KIndenter.ID, DustStreamIndenter.class.getName());

    env.init(factLogic, factDataWrapper, factLogicWrapper);

    DustKernelEntity e;
    DustKernelType tVendor = new DustKernelType(KVendor.INFO);
    DustKernelType tDomain = new DustKernelType(KDomain.INFO);
    DustKernelType tUnit = new DustKernelType(KUnit.INFO);

    e = env.registerEntity(tVendor, null, ID_VENDOR_ROOT, null);
    IVendor vRoot = (IVendor) e.getAspect(KVendor.ID);

    e = env.registerEntity(tDomain, ID_VENDOR_ROOT, ID_DOMAIN_FRAME, null);
    IDomain dFrame = (IDomain) e.getAspect(KDomain.ID);

    vRoot.addDomain(dFrame, ID_DOMAIN_FRAME);

    e = env.registerEntity(tUnit, FRAME_PATH, ID_UNIT_KERNEL, null);
    IUnit uKernel = (IUnit) e.getAspect(KUnit.ID);

    dFrame.addUnit(uKernel, ID_UNIT_KERNEL);

    regType(uKernel, DustKernelType.TYPE_NAME, env);
    regType(uKernel, tVendor, env);
    regType(uKernel, tDomain, env);
    regType(uKernel, tUnit, env);
    regType(uKernel, DustKernelType.TYPE_TYPE, env);
    regType(uKernel, DustKernelField.TYPE_FIELD, env);

    vRoot.getName().setName(ID_VENDOR_ROOT);
    dFrame.getName().setName(ID_DOMAIN_FRAME);
    uKernel.getName().setName(ID_UNIT_KERNEL);

    regType(uKernel, new DustKernelType(KStreamWrite.INFO), env);
    regType(uKernel, new DustKernelType(KIndenter.INFO), env);

    e = env.registerEntity(env.getIdI("[dust.frame.stream.StreamWrite]:dump"));
    e.addAspect(KIndenter.ID);
  }
 static void regType(IUnit unit, DustKernelType t, DustKernelEnvironment env) {
   unit.addType((IType) t.export(env), t.name);
 }