function fetch()
    {
        if ($this->memberid === false) {
            $this->page->go404('Member not found');
            exit;
        }
        require_once PATH_FACEBOOK . '/classes/actionTeam.class.php';
        $actionTeam = new actionTeam(&$this->page);
        if ($_GET['message']) {
            $inside .= $this->page->buildMessage('success', "Submission successful", urldecode($_GET['message']));
        }
        $this->updateUserCachedPoints($this->memberid, $this->isProfileOwner || $this->session->u->isAdmin || $this->session->u->isModerator);
        // update immediately under any of these circumstances
        $inside .= ' <div id="col_left">
					<script>
						<!-- 
						updateProfileTabName(' . $this->session->fbId . ',' . $this->memberid . '); 
						//-->
					</script>
			          <!-- begin left side -->


					<div id="myProfile">
					    	
						<!-- profileSummary goes here -->
					    ' . $actionTeam->fetchProfileSummaryPanelForProfilePage($this->memberid, $this->isProfileOwner, true, false) . '    
					</div><!-- end "myProfile"-->
					
					<!--  profileBio here -->
					' . self::fetchBio($this->isProfileOwner, $this->memberid) . '
					<!--  pending challenges here -->
					' . (ENABLE_ACTION_CHALLENGES ? $this->fetchPendingChallenges() : '') . '
					<!--  orders summary goes here -->					
					' . $this->fetchRedeemLinks() . '
					<!--  orders summary goes here -->					
					' . $this->fetchOrderList() . '
					

					<!--  admin -challenge submit div goes here -->
					' . (isset($_GET['viewSubmitted']) ? $this->fetchChallengesSubmittedFeedBox() : '') . '
					
					
					<!--  feed div goes here -->
					' . (isset($_GET['viewHistory']) ? $this->fetchPlainHistoryBox() : $this->fetchFeedBox()) . '

					
					
					</div><!--end "col_left"-->
					
					<div id="col_right">';
        if ($this->session->isAdmin && isset($_GET['showAdminPanel'])) {
            $inside .= $this->fetchAdminPanel();
            // not implemented now, but potentially useful
        }
        // Blog posts by this user (if any)
        $q = $this->db->queryC("SELECT UserBlogs.blogid,UserInfo.fbId,UserInfo.userid FROM UserBlogs LEFT JOIN UserInfo ON UserInfo.userid=UserBlogs.userid WHERE UserInfo.fbId=" . $this->memberid . " AND UserBlogs.status='published';");
        if ($q !== false) {
            $data = $this->db->readQ($q);
            $this->templateObj->registerTemplates(MODULE_ACTIVE, 'read');
            $this->templateObj->db->result = $this->templateObj->db->query("SELECT * FROM Content WHERE isBlogEntry=1 AND userid=" . $data->userid . " ORDER BY date DESC LIMIT 10 ");
            $this->templateObj->db->setTemplateCallback('mbrLink', array($this->templateObj, 'memberLink'), 'userid');
            $inside .= '<div class="panel_1"><div class="panelBar clearfix"><h2>Blog posts by <a href="?p=profile&memberid=' . $this->memberid . '" onclick="return switchPage(\'profile\', \'\', ' . $this->memberid . ';"><fb:name ifcantsee="Anonymous" uid="' . $this->memberid . '" capitalize="true" firstnameonly="false" linked="false" /></a></h2></div><!-- end panelbar --><br />';
            $inside .= $this->templateObj->mergeTemplate($this->templateObj->templates['otherStoryList'], $this->templateObj->templates['otherStoryItem']);
            $inside .= '</div><!-- end panel_1 -->';
        }
        if (!$this->isProfileOwner) {
            $adjPage = 'otherProfile';
        } else {
            $adjPage = 'myProfile';
        }
        $inside .= $actionTeam->fetchSidePanel($adjPage);
        $inside .= '</div><!--end "col_right"-->';
        /*
        		$profileSummary = $actionTeam->fetchProfileSummary($this->memberid, $this->isProfileOwner, true, false, true);
        		$inside .= $profileSummary; 
        		
        		$inside .= self::fetchBio($this->isProfileOwner, $this->memberid);
        		//$inside.='<p><strong>Challenges I\'ve Completed</strong><p>';
        		//$inside.= $this->fetchChallengesCompleted(isset($_GET['currentPage']) ? $_GET['currentPage'] : 1);
        		//$inside.='<br />';
        		//$inside.='<p><strong>Stories I\'ve posted</strong><p>';
        		//$inside.=$this->fetchPostedStories();
        $inside .= $this->fetchPendingChallenges();
        		$inside .= $this->fetchOrderList();
        		$inside .= $this->fetchFeedBox();
        		$inside.='<br />';
        */
        if ($this->page->isAjax) {
            return $inside;
        }
        // build the profile page
        $code = $this->page->constructPage('profile', $inside);
        return $code;
    }