Added types configuration and factory implementation that works with it