what happens if none of the 3 if matches ? I think we're missing a final return here