updated samemo, narrowing with free vars on gc