numerous protocol functions added to their corresponding protocol definitions