automatic injection of contexts
CPS