The simple checking with cast() is terrible. The edges of the field are far more important, anyway...