public function setAccessTokenFromProfile(TwitterProfile $profile)
    {
        $tokens = $profile->get(['access_token', 'access_token_secret']);

        if (!empty($tokens['access_token'])) {
            $this->app['twitter']->setTokens($tokens['access_token'], $tokens['access_token_secret']);
            $this->profile = $profile;
        } else {
            // use the access token from profile that referenced this profile
            $referencingProfile = $profile->relation('most_recently_referenced_by');

            // recursion would be nice here, but could be dangerous
            $tokens = $referencingProfile->get(['access_token', 'access_token_secret']);

            if ($referencingProfile->exists() && !empty($tokens['access_token'])) {
                $this->app['twitter']->setTokens($tokens['access_token'], $tokens['access_token_secret']);
                $this->profile = $referencingProfile;
            }
        }

        return $this;
    }