Protocol callback added and tests