split into subcomands