return "BloggsCal footer\n";
    }
}
class MegaCommsManager extends CommsManager
{
    function getHeaderText()
    {
        return "MegaCal header\n";
    }
    function getApptEncoder()
    {
        return new MegaApptEncoder();
    }
    function getTtdEncoder()
    {
        return new MegaTtdEncoder();
    }
    function getContactEncoder()
    {
        return new MegaContactEncoder();
    }
    function getFooterText()
    {
        return "MegaCal footer\n";
    }
}
$mgr = new MegaCommsManager();
print $mgr->getHeaderText();
print $mgr->getApptEncoder()->encode();
print $mgr->getFooterText();