Instances and construction
UPoCs that are configured in different threads in the engine are always instantiated as separate instances.
UPoCs that are configured with different user arguments are always instantiated as separate instances.
UPoCs of the same class which are configured in the same thread with the same user arguments are instantiated as a single instance.
For example, a logging/audit type TPS is configured for both inbound and outbound on the same thread with the same user arguments. This is instantiated only once.