Changed to only allow one instance per process and to keep them alive for the length of the program (the instance, not the process). This makes it safe to refer to any process instance through 'assign'