Refactor protocol; Add status reports