setCooldown now more versatile and not final