refactoring - introducig dataProvider and abstracting out jaydata from extensions