check semantics of operator[] (wip)