First cut at supporting polymorphism