add shell completion