This isn't really a good example (or at least not from the snippet above; I can't go digging through the rest of the code now).  But the one I originally mentioned to @cordoval was (I think) [IssueListLabelsCommand](https://github.com/cordoval/gush/blob/master/src/Gush/Command/IssueListLabelsCommand.php) where the ```execute()``` method contains this:

```php
      /** @var TableHelper $table */
        $table = $this->getApplication()->getHelperSet()->get('table');
        $table->setLayout(TableHelper::LAYOUT_BORDERLESS);
        $table->setHorizontalBorderChar('');
        $table->setPaddingChar(' ');
        $table->setVerticalBorderChar('');

        foreach ($labels as $label) {
            $table->addRow(array($label['name']));
        }

        $table->render($output);
```

The ```execute()``` comand should not have to know the various things that ```table``` needs to have done to it. I.e., there's no reason to set the various pieces of table.  Instead, have ```Table``` objects initialize themselves and set the variables as defaults.  Have variants of table for various scenarios if the defaults need to be different.

Also, pass the labels into table and have it do the ```addRow``` calls from there, not from in execute.

The goal is to hide the functionality and have the objects perform their functions rather then performing them in the calling methods. That way, you're free to change the implementations later, and not have to worry about everywhere that calls the old way. You can maintain an API to the objects.

This isn't a great example and I cannot really find a better one or go into more detail right now, I was just giving a quick reponse because Luis asked me to, but the general idea is Tell objects to do stuff instead of Asking them for information so that you can do it. Also hide implementation details.  Try to avoid using setters, and instead build functionality whereby you message an object to do something, sending applicable data, and it does it itself.

Make sense?