add abstract class World