better map generation logic (still not perfection but simpler code)