improved arg parsing
first fully working code state