This is so dense, the if/else if/else statements should really be blocks wrapped in curly braces.