implemtning proto_library
 fixbug