magic methods for set***() and get***()