CJ: Item and subclasses refactor