Refactoring World, etc. and fix #387