def [] and []=