add getValue, setValue