get_cell is virtual as it would commonly be overridden