How will this scale, if there are more parking spots type? Adding more HashMap<>, switch case does not look good, should we have a Parking floor Manager and a parking spot Factory? and we just make Parking Spot also an abstract class, make BikeSpot, Car Spot, just like Vehicle and use in Factory?