refactored console client to be more extensible