factor out Item
use the Item as a base class
subclass namedtuple