reorganize data access into its own package