Consolidate version checking
Separate classes for command tab completion