+ some tricky validation