support for overriding return type of immutable setters