fix valid? to reject non number