Make it robuster, and add some usage information