yet another refactoring / decoupling CLI parsing