bindings should be functional