refacter using world object