moved context into infrastructure. added abstract factory for datastore