private function removeSystem(System $system)
 {
     $deletedIds = [];
     $em = $this->getDoctrine()->getManager();
     // remove subsystems
     foreach ($system->getSubsystems() as $child) {
         $deletedIds = $this->removeSystem($child);
     }
     // @todo should be done via an event
     // remove integration systems
     $integrationSystems = $this->getDoctrine()->getRepository('KoalamonIntegrationBundle:IntegrationSystem')->findBy(['system' => $system]);
     foreach ($integrationSystems as $integrationSystem) {
         $em->remove($integrationSystem);
     }
     // remove missing request collections
     try {
         $collections = $this->getDoctrine()->getRepository('LeanKoalaIntegrationMissingRequestBundle:Collection')->findBy(['project' => $system->getProject()]);
         foreach ($collections as $collection) {
             $collection->removeSystem($system);
             $em->persist($collection);
         }
     } catch (\Exception $e) {
     }
     // remove eventIdentifiers
     $eventIdentifiers = $this->getDoctrine()->getRepository('KoalamonIncidentDashboardBundle:EventIdentifier')->findBy(['system' => $system]);
     foreach ($eventIdentifiers as $eventIdentifier) {
         $em->remove($eventIdentifier);
     }
     $em->flush();
     $deletedIds[] = $system->getId();
     $em->remove($system);
     $em->flush();
     return $deletedIds;
 }