fix recursion with trampoline