refactor into consistent shape
support DOMDelegator handles