public function addDraftNodeVersionFor(
        HasNodeInterface $hasNode,
        $lang,
        Node $node,
        BaseUser $owner
    ) {
        $em = $this->getEntityManager();
        $className = ClassLookup::getClass($hasNode);
        if (!$hasNode->getId() > 0) {
            throw new \InvalidArgumentException(
                'The entity of class ' . $className .
                ' has no id, maybe you forgot to flush first'
            );
        }

        $nodeTranslation = $em->getRepository('KunstmaanNodeBundle:NodeTranslation')->findOneBy(['lang' => $lang, 'node' => $node]);

        $em->getRepository('KunstmaanNodeBundle:NodeVersion')
            ->createNodeVersionFor(
                $hasNode,
                $nodeTranslation,
                $owner,
                null,
                NodeVersion::DRAFT_VERSION
            );

        $em->refresh($nodeTranslation);
        $em->refresh($node);

        return $nodeTranslation;
    }