functionContext new interface and test for my taste