initial support for polymorphism