master
Runtime polymorphism refactoring