improved handling of cli args including allowing default values and more description usage

Redoing pull request since i accidentally closed the last one