Added a nested object for protocol details, shortened some variable names and interface names for brevity.