still thinking about how to handle the data providers