Prototyping protocols. #26, #27, #28, #29