spent a while on this whew