This breaks the existing `setElement` signature. Can we do `(element, delegate, attributes)` instead? Otherwise nice job.