defaultArgs can now invoke functions to prevent the sharing of instances