Extended Error detection to include timeout & CRC

Also minor code relayout to remove unwanted rubbish