Refactored into a subcommand architecture
Added several flags and new default behaviour