add a map convenience for creating protocols