refacor item class