what's the different between these if /else branch ?