Implement the ideas in #633.
@disnet can you outline what you think the requirements are to make this happen?