refactoring indexible trait