diff --git a/README.rst b/README.rst
index 6cc69d2ae4f03621aa73cd359369a76a8d7fb5f7..bfe3b3bdac7d47247d48d1e0a70cb7374e71dc0f 100644
--- a/README.rst
+++ b/README.rst
@@ -40,22 +40,25 @@ Here is built-in command line help:
 
 .. code-block:: bash
 
-   $ downloadm3u8 --help
-   usage: downloadm3u8 [-h] [--version] [--output OUTPUT] [--tempdir TEMPDIR]
-                       [url]
+   usage: m3u8downloader [-h] [--version] [--debug] --output OUTPUT
+                         [--tempdir TEMPDIR] [--concurrency N]
+                         URL
    
    download video at m3u8 url
    
    positional arguments:
-     url                   the m3u8 url
+     URL                   the m3u8 url
    
    optional arguments:
      -h, --help            show this help message and exit
-     --version             print version
+     --version             show program's version number and exit
+     --debug               enable debug log
      --output OUTPUT, -o OUTPUT
-                           target video filename
+                           output video filename, e.g. ~/Downloads/foo.mp4
      --tempdir TEMPDIR     temp dir, used to store .ts files before combing them
                            into mp4
+     --concurrency N, -c N
+                           number of fragments to download at a time
 
 Documentation
 -------------
diff --git a/m3u8downloader/__init__.py b/m3u8downloader/__init__.py
index 906d362f7de4fa4a809146a1ea93fb01d22ceab9..49e0fc1e09447ed8f5dd92db74c9d289f547a1a3 100644
--- a/m3u8downloader/__init__.py
+++ b/m3u8downloader/__init__.py
@@ -1 +1 @@
-__version__ = "0.6.0"
+__version__ = "0.7.0"
diff --git a/m3u8downloader/main.py b/m3u8downloader/main.py
index ae0e593c4b580c6c7636ea09793e1869320eec24..d0e6eff8452758a09851c25e917c2cac5193818c 100644
--- a/m3u8downloader/main.py
+++ b/m3u8downloader/main.py
@@ -28,6 +28,7 @@ import platform
 import requests
 from wells.utils import retry
 
+import m3u8downloader
 import m3u8downloader.configlogger    # pylint: disable=unused-import
 
 logger = logging.getLogger(__name__)
@@ -341,29 +342,22 @@ class M3u8Downloader:
 
 
 def main():
-    parser = argparse.ArgumentParser(description="download video at m3u8 url")
-    parser.add_argument('--version', action='store_true', help='print version')
+    parser = argparse.ArgumentParser(prog='m3u8downloader',
+                                     description="download video at m3u8 url")
+    parser.add_argument('--version', action='version',
+                        version='%(prog)s ' + m3u8downloader.__version__)
     parser.add_argument('--debug', action='store_true', help='enable debug log')
-    parser.add_argument('--output', '-o', help='target video filename')
+    parser.add_argument('--output', '-o', required=True,
+                        help='output video filename, e.g. ~/Downloads/foo.mp4')
     parser.add_argument(
         '--tempdir', default=os.path.join(get_default_cache_dir(),
                                           'm3u8downloader'),
         help='temp dir, used to store .ts files before combing them into mp4')
     parser.add_argument('--concurrency', '-c', metavar='N', default=5,
                         help='number of fragments to download at a time')
-    parser.add_argument('url', nargs='?', help='the m3u8 url')
+    parser.add_argument('url', metavar='URL', help='the m3u8 url')
     args = parser.parse_args()
 
-    if args.version:
-        import m3u8downloader
-        print("m3u8downloader " + m3u8downloader.__version__)
-        return
-
-    if not args.url:
-        print("URL is required")
-        parser.print_help()
-        sys.exit(1)
-
     if args.debug:
         logging.getLogger("").setLevel(logging.DEBUG)