have readNumbers accept negative to work around bugs in old state