#114 Refactoring generic type