refactor world