Building Command Line Interfaces