separated command parser