I think I've created a reasonable set of error message
Much better error messages