impl `if` block