allow the client delegate target to be nil,
use try when referencing potential nil client