added protocol module, moved protocol builders and fixed module dependencies
merge master