try some better validation