factored out RiTextIF interface