Lots of ifs and coulds...