functioning setTimeout functionality