Refactoring 08 stuff with polymorphism