pub/sub client methods and avoid circular reference errors