Separate ItemData and Item classes; improvements.