refactor common methods to item base