Try to consolidate all protocol handling further