implemented cooldown