moved argument parsing to a seperate file