Software protocol