refactor item entity