improve error messages, use argv and strerror