Separate setter and validation