4 levels of if,
are these all neccesary?