Major interface refactor