Improved environment, using Option for parent and a simplified, non-var-using set method.