Now gives a nicer  error message if you accidentally pass a string to 'readValue'