figured out macro polymorphism