adding support for Google protocol buffer