refine CLI, add interactive (no args) mode
move CLI implementation