working on own type safe command line parser