continuing refactoring of item functions