word-at-a-time: make the interfaces truly generic