rect overlap testing seems to work