used InvocationContext instead of implementation at initialization time