new item abstraction