Refactor protocol execute into goroutine