Make Argument private properties non-enumerable.
Make Command private properties non-enumerable.
Make Program private properties non-enumerable.
Hide program public methods from enumeration.

They are now also read-only.
Hide mutator methods from Command.prototype.

So they are not enumerable and are read-only.