add dataframe support