interesting check
some tricky improvements