Refactor.
Add GenericTuple.
Refactor.