add reuse option to Customer
new concept: Invoker