If routes

This is a nice one... 20 additions and 290 deletions.