made client extendable