def intersect(table2, colname, col2name=colname)
    # check arguments
    raise ArgumentError, "Invalid table!" unless table2.is_a?(Table)
    raise ArgumentError, "Invalid column name" unless @table.has_key?(colname)
    raise ArgumentError, "Invalid column name" unless table2.headers.include?(col2name)