implement observer pattern for cells/grid