Is this level of flexibility necessary? Why not just force people to provide an instance?