refactor: another round of qualifiers...
refactor: do not require transactional omods to provide doAction()