Extract interface, introduce one point where switching between AbstractItem and not an AbstractItem is done.