register halClient as a singleton