reworking command arg parsing
reworked argument parsing to be more generic (wip)