cleaning up interfaces to hopefully be final

This isn't final, as I have some todos, but the interfaces are there, so comment on them for now