code gardening
extract TupleBase protocol