Divide generation into stages, add type data information