use single interval rather than recursive timeout
merge