runtime uses pointers for reader and printer state again