Protocol instead of transport in callbacks