Split API classes and interfaces

@bjori: Can you elaborate on this? Did you mean to imply that the extension is just going to read internal properties directly?