public function referencesGet( $entityOrContainer, $reference, $source = null )
    {

        if( !( $entityOrContainer instanceof Base || $entityOrContainer instanceof Container ) ) {
            throw new \InvalidArgumentException("You can only lookup references by Entity or Container");
        }

        if( !$this->hasReference( $reference, $detail ) ) {
            throw new EntityReferenceException( $this, $reference );;
        }

        $foreignRepo = $this->entityManager->getRepository( $detail[0] );

        $filterComponent = $this->getFindFilterFactory($source)
            ->get( $detail[1], null, $entityOrContainer );

        // find one / find all
        if( $entityOrContainer instanceof Container ) {
            $findQty = FindFilterComponentFactory::FIND_ALL;
        } else {
            $findQty = $detail[2] ? FindFilterComponentFactory::FIND_ALL : FindFilterComponentFactory::FIND_ONE;
        }

        return $foreignRepo->findByFilterComponents(
            $findQty,
            array( $detail[1] => $filterComponent ),
            $source
        );

    }