proof of concept for #12

I'm pulling this into my fork to review and complete it.