rewrite *ToDataFrame as S3 methods