worked on command classes, made them obey the protocol