item/inventory refactoring