seperate data sources and update framework