why not a protocol with getitem with an int arg?