class Car { String madeby; static Map garage; factory Car(String manufacturer) { if(Car.garage == null) Car.garage=new Map(); if (Car.garage.containsKey(manufacturer)!=null) return Car.garage[manufacturer]; else { Car newcar = new Car.buy(manufacturer); Car.garage[manufacturer] = newcar; return newcar; } } Car.buy(this.madeby); } main() { var onecar = new Car("Ferrari"); var anothercar = new Car("Ferrari"); }