Don't rely on this interface yet, it's barely tested.
