integrated with Thrift