started refactoring polymorphie