implement fn bindings properly