more protocols, fix for loop-over