better type coersion