code: public void interpret( Specification table )
      {
          Example row = table.nextExample();
  
          Example expectedCell = row.at(0, 2);
          Action action = Action.parse( actionCells(row));
          Date start = new Date();
  
          try
          {
              Call call = action.checkAgainst( fixture );
              call.expect( expectedCell.getContent() );
              call.will( Annotate.right( expectedCell ) ).when( ResultIs.right() );
              call.will( Annotate.wrongWithDetails( expectedCell ) ).when( ResultIs.wrong() );
              call.will( Annotate.exception( CollectionUtil.first( keywordCells(row) ) ) ).when( ResultIs.exception() );
              call.will( tallyStatistics( table ) );            
              call.execute();
          }
          catch (Exception e)
          {
              reportException( table );
              CollectionUtil.first( keywordCells(row) ).annotate( Annotations.exception( e ) );
          }
          finally
          {
              if(timed)
              {
                  long split = new Date().getTime() - start.getTime();
              	row.addChild().setContent(Fit.format.format(start));
              	row.addChild().setContent(split<1000 ? "&nbsp;" : Double.toString((split)/1000.0));
              }
          }
      }
docs: {@inheritDoc}