public function filterByObject( $objectOrArray )
    {

        $response = new Response();

        if( !is_array($objectOrArray) ) {
            $objectOrArray = array( $objectOrArray );
        }

        foreach( $objectOrArray as $object ) {

            if( !is_object($object) ) {
                throw new \InvalidArgumentException("can't findTransactionByObject if not object" );
            }

            // iterate over t
            foreach( $this->queue as $transaction => $transactionQueue ) {
                foreach( $transactionQueue as $key => $task ) {
                    if( $object === $task or $object === $task->getObject() ) {
                        $response->add(
                            $transaction,
                            $task,
                            isset( $this->exceptions[$transaction][$key] )
                                ? $this->exceptions[$transaction][$key]
                                : $this->status[$transaction][$key]
                        );
                    }
                }
            }

        }

        return $response;

    }