item class refactor