sophisticated read mode toggling