无法在帐户信息中心上创建自定义页面

I have created a post on Magento community forum but seems no one can answer it so I'm posting it here.

I can add a link on my account left menu, but when I click it, it gives me an 404 error. Is there anything wrong with my files' location? Or is it the problem of my code? My Controller:

class Mage_Customer_TrainingController extends Mage_Core_Controller_Front_Action
{
    protected function _getSession()
    {
        return Mage::getSingleton('customer/session');
    }

    public function preDispatch()
    {
        parent::preDispatch();

        if (!Mage::getSingleton('customer/session')->authenticate($this)) {
            $this->setFlag('', 'no-dispatch', true);
        }
    }

    public function indexAction()
    {
        $this->loadLayout();
        $this->renderLayout();
    }


}

Controller Location:
Screenshot1.jpg
customer.xml for layout

<reference name="left_first">
    <block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
        <action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
        <action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
        <action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>
        <action method="addLink" translate="label" module="customer"><name>training</name><path>customer/training/</path><label>Training Material</label></action>                
    </block>
</reference>

Screenshot2.jpg
my custom page layout xml:

<customer_training_index translate="label">
    <label>Customer Training</label>
    <!-- Mage_Customer  -->
    <update handle="customer_account"/>
    <reference name="my.account.wrapper">
        <block type="customer/training" name="customer_training" template="customer/training/training.phtml"/>
    </reference>
</customer_training>

My real customer page layout phtml:
Location:
Screenshot3.jpg
Code:

<div class="dashboard">
    <div class="page-title">
        <h1><?php echo $this->__('Healthy Living & Knowledge of Chinese Medicine') ?></h1>
    </div>
    <?php
        echo $this->getLayout()->createBlock('cms/block')->setBlockId('training_material')->toHtml();
    ?>
</div>

My Block:
Location:
Screenshot4.jpg
Code:

<?php

class Mage_Customer_Block_Training extends Mage_Customer_Block_Account_Dashboard // Mage_Core_Block_Template
{

    // public function __construct()
    // {
    //     parent::__construct();
    //     $this->setTemplate('customer/form/training.phtml');
    // }

    // public function getIsSubscribed()
    // {
    //     return $this->getSubscriptionObject()->isSubscribed();
    // }

    public function getTrainingUrl()
    {
        return $this->getUrl('customer/training/');
    }

}