got rid of unnecessary classes and moved command generation higher up the call stack