detecting patterns