public function delete($id)
 {
     /* @var $estate \Models\ViewModels\EstateViewModel */
     $estate = $this->estate->getEstate($id);
     /* @var $images \Models\ViewModels\ImageViewModel[] */
     $images = $this->image->getImagesByEstate($id);
     if ($this->estate->delete($id) !== 1) {
         Session::setError('something went wrong. try again');
         Redirect::back();
     }
     /* @var $imageController \Controllers\ImageController */
     $imageController = DependencyProvider::injectDependenciesToController(new ImageController());
     if (isset($estate->main_image_id)) {
         $mainImg = new ImageViewModel();
         $mainImg->id = $estate->main_image_id;
         $mainImg->name = $estate->image;
         $images[] = $mainImg;
     }
     $imageController->removeMultiple($images);
     Session::setMessage('The estate is deleted');
     Redirect::to('');
 }