there is no docs for this - what is it for ? why is a separate interface needed ?