add magic setter