Setting up defaults to edit form

Setting up defaults in factory component / form is wrong. What's the right way to do so?

class FooPresenter extends BasePresenter
{
        protected function loadItem($id)
        {
                $item = $this->getContext()->itemService->find($id);
                if (!$item) {
                        $this->flashMessage("Item with id $id does not exist", 'error');
                        $this->redirect('default'); // aka items list
                }
                return $item;
        }

        protected function createComponentRecordForm()
        {
                $form = new Form;
                $form->addText(...);
                // ...
        }

        public function actionEdit($id)
        {
                $item = $this->loadItem($id);
                $defaults = $this->someMagicHere($item);
                $this['recordForm']->setDefaults($defaults);
        }
}