building out command dispatch flow