Refactored NormalItem multiple use useWith() internals, extracted inner class ItemuseInfo