Callbacks should be called once for every pushed source.
Rationalise DB (introduce Crud object) and introduce schema update system