use commander for arg parsing, support saving to disk