refactor the GLI support code out of the main gem