Make fields private in World, improvements to async