Agreed, this needs some work. The idea implementation would, on first call to args, lazilly check if the node command is installed on the system. If it is, it should store a new NodeEnvironment, else it should store a new RhinoEnvironment.

This can probably be done quite elegantly using the django @cached_property decorator.