dataframe refactoring into core and storage-specific components.