This merge request implements the support for protocol templates.
Part of #64
This will create a new commit in order to revert the existing changes.