Allow protocols to only set the variables / functions that are needed