refactor Action into a class and add cooldown vars