Refactoring GenericItem