Recompiled after abstraction