command updates, added abstract class for shared methods