Another idea: (thinking out loud
should there be a separate current position for read and one separate current position for write?
Or do they share one current position?
The latter is easier, less footprint, but the first one might have some extra value..