A class-based Command Line Interface with dynamic discovery of commands