Rough work on protocol refactoring