implemented setitem getitem