context abstraction, initial implementation