Refactored out the use of ClientType in favour of overriding createTemporaryDestination() in producer