Major interface and contract refactor to play nicely with the way things work at ms