osm abstract class