removed interface IMapObject and replaced with abstract class MapObject