cleaned up _val slightly