handle coercion into numerics correctly