public function decorate($value)
{
if ($value instanceof PresentableInterface) {
return $value->getPresenter();
}
if (is_array($value) or $value instanceof IteratorAggregate and $value instanceof ArrayAccess) {
foreach ($value as $k => $v) {
$value[$k] = $this->decorate($v);
}
}
return $value;
}