compile generate compile that is the order we need the generation part