separated cli from algorithms