moved out the larger commands to their own subs