while/else support