I think this `if...else` should be placed as first citizen of this method...