calls (with tailcalls) and fns implemented