This looks pretty good, the only thing I dont like is asking for the whole cell (which may not even be created).  I have this already in O2 so I will just do an implementation of it here