An evolution from Mono.Options/NDesk.Options