Understanding code execution