add property getter/setter, validation, clone