implements optional data.json provider
adds error handler for easier error resiliency