sync with libcloudphxx