Going more functional

The Foo1, Foo2, Foo3 bindings were just too awful to not to try this,
and as it turned out, one error already fixed thanks to this:)