switched to IItem interface in certain places