Seperated world generation out, added profilling support.