refactored cammands to use groups