a bit more robust arg handling, error messages