Setting the visibility of X.volumes did not work properly.

The reason was that injects in the constructor overwrote any prototype defined getters/setters and therefor the special case of the visible-setter for X.volumes was fully ignored. The inject functionality now checks if a setter was previously defined on the prototype and then does not replace it.