map generation now works but is unoptimised