refactored setter, allowed ctor use