add real arg parsing, arbitrary port choice

- Fixes #8