created abstract map class