minor updates; adding protocol config and changing to struct based setup