add actions and subroutines