Okay we can expose basic blocks and emit them. Next is some complex operation