improve if else