There are lots of "IF's" here.