use setTimeout, not setInterval