Split level generation into multiple steps