abstracted context layer