some cleanup
big interface refactor among other things