[feat] added types configuration and factory implementation that works with it