diff --git a/simpleid/www/html/template.xtpl b/simpleid/www/html/template.xtpl
new file mode 100644
index 0000000..66d1aff
--- /dev/null
+++ b/simpleid/www/html/template.xtpl
@@ -0,0 +1,419 @@
+<!-- BEGIN: main --><!DOCTYPE html>
+<html lang="en">
+    <!-- :mode=html: $Id$ -->
+    <head>
+        <title>{title} - SimpleID</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <meta name="SimpleID-Version" content="{version}" />
+        <meta name="robots" content="noindex,nofollow" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
+        <link rel="shortcut icon" href="{base_path}html/simpleid.ico" type="image/x-icon" />
+        
+        <!-- BEGIN: provider -->
+            <link rel="openid.server" href="{provider}" />
+            <link rel="openid2.provider" href="{provider}" />
+            <meta content="{xrds}" http-equiv="X-XRDS-Location" />
+        <!-- END: provider -->
+        <!-- BEGIN: local_id -->
+            <link rel="openid.delegate" href="{local_id}" />
+            <link rel="openid2.local_id" href="{local_id}" />
+        <!-- END: local_id -->
+        
+        <link rel="stylesheet" href="{base_path}html/simpleid.css" />
+        <style type="text/css" media="screen">
+            {css}
+        </style>
+        
+        <script src="{base_path}html/jquery.js" type="text/javascript"></script>
+        <script type="text/javascript">
+        var l = {
+            <!-- BEGIN: js_locale -->"{js_locale_label}": "{js_locale_text}",<!-- END: js_locale -->
+        };
+        </script>
+        <!-- BEGIN: framekiller -->
+        <script type="text/javascript">
+            $(document).ready(function() {
+                if (top !== self) top.location.replace(self.location.href);
+            });
+        </script>
+        <!-- END: framekiller -->
+        {javascript}
+    </head>
+    <body class="{page_class}">
+        <div id="header"><div id="header-inner">
+            <!-- BEGIN: nav_toggle --><div id="nav-toggle"><img src="{base_path}html/nav-toggle.png" /></div><!-- END: nav_toggle -->
+            <div id="logo">
+                <h1><a href="http://simpleid.org/">SimpleID</a> <span class="version">{version}</span></h1>
+            </div>
+            <!-- BEGIN: user -->
+            <div id="user-toggle"><img src="{base_path}html/user-toggle.png" /></div>
+            <div id="user">
+                <div class="logged-in-as">
+                    <span><strong title="{identity}" class="identity">{uid}</strong></span>
+                <!-- BEGIN: logout --><span id="logout"><a href="{url}">{logout}</a></span><!-- END: logout -->
+                </div>
+            </div>
+            <!-- END: user -->
+            <div style="clear: both;"></div>
+        </div></div>
+        <!-- BEGIN: nav -->
+        <div id="nav"><div id="nav-inner">
+            <ul id="nav-left">
+                <li><a href="{nav_base}">{nav_dashboard_label}</a></li>
+                <li><a href="{nav_base}my/profile">{nav_profile_label}</a></li>
+                <li><a href="{nav_base}my/sites">{nav_sites_label}</a></li>
+            </ul>
+            <div style="clear: both"></div>
+        </div></div>
+        <!-- END: nav -->
+        <div id="content"><div id="content-inner">
+            <h1>{title}</h1>
+            
+            <!-- BEGIN: message -->
+            <div class="message">
+                <p>{message}</p>
+            </div>
+            <!-- END: message -->
+            
+            <!-- BEGIN: login -->
+            <!-- BEGIN: login_security -->
+            <div class="login-security {security_class}">
+                <p>{security_message}</p>
+            </div>
+            <!-- END: login_security -->
+            
+            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded" id="login-form">
+                <input type="hidden" name="q" value="login"/><input name="destination" type="hidden" value="{destination}"/>
+                <input type="hidden" name="mode" value="{mode}"/><input type="hidden" name="nonce" value="{nonce}" />
+
+                <!-- BEGIN: credentials -->
+                <input type="hidden" name="digest" id="edit-digest" value="" />
+                
+                <div class="form-item">
+                    <label for="edit-name">{name_label}</label>
+                    <!-- BEGIN: input_uid --><input type="text" maxlength="60" name="name" id="edit-name" value="" autocapitalize="off" autocorrect="off" class="form-text required" {security_disabled} /><!-- END: input_uid -->
+                    <!-- BEGIN: fixed_uid --><input type="hidden" name="name" value="{uid}"/><input type="hidden" name="fixed_uid" value="1"/><div id="edit-name">{uid}</div><!-- END: fixed_uid -->
+                </div>
+                <div class="form-item">
+                    <label for="edit-pass">{pass_label}</label>
+                    <input type="password" name="pass" id="edit-pass" size="60" class="form-text required" {security_disabled} />
+                </div>                
+                <div class="form-item">
+                    <label class="option">
+                        <input type="checkbox" name="autologin" value="1" />
+                        {autologin_label}
+                    </label>
+                </div>
+                <!-- END: credentials -->
+
+                <!-- BEGIN: otp -->
+                <input type="hidden" name="autologin" value="{autologin}" />
+                
+                <p>{otp_instructions_label}</p>
+
+                <p>{otp_recovery_label}</p>
+                
+                <div class="form-item">
+                    <label for="edit-otp">{otp_label}</label>
+                    <input type="number" maxlength="6" name="otp" id="edit-otp" size="10" value="" autocapitalize="off" autocorrect="off" class="form-text required" />
+                </div>
+                <!--div class="form-item">
+                    <label class="option">
+                        <input type="checkbox" name="autoverify" value="1" />
+                        {autoverify_label}
+                    </label>
+                </div-->
+                <!-- END: otp -->
+
+                <input type="submit" name="op" id="edit-submit" value="{submit_button}" class="form-default" {security_disabled} />
+                <!-- BEGIN: state -->
+                    <input type="submit" name="op" id="edit-cancel" value="{cancel_button}" />
+                    <input type="hidden" name="s" value="{state}"/>
+                <!-- END: state -->
+            </form>
+            <!-- END: login -->
+            
+            <!-- BEGIN: openid_consent -->
+            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded" id="rp-form">
+                <input type="hidden" name="q" value="openid/consent" />
+                <input type="hidden" name="s" value="{state}" />
+                <input name="tk" type="hidden" value="{token}"/>
+                
+                <!-- BEGIN: icon -->
+                <div class="icon">
+                    <img src="{icon_url}" alt="" />
+                </div>
+                <!-- END: icon -->
+                
+                <!-- BEGIN: setup -->
+                <input type="hidden" name="openid.realm" value="{realm}" />
+                
+                <p>{realm_label}</p>
+                
+                <!-- BEGIN: suspect -->
+                <div class="message unsecure">
+                    <p>{suspect_label}</p>
+                </div>
+                <!-- END: suspect -->
+                
+                <div class="form-item">
+                    <label class="option">
+                        <input class="{realm_class}" type="checkbox" name="autorelease" {auto_release} value="1" />
+                        {auto_release_label}
+                    </label>
+                </div>
+
+                {extensions}
+                
+                <input type="submit" name="op" id="edit-submit" value="{ok_button}" class="form-default" />
+                <input type="submit" name="op" id="edit-cancel" value="{cancel_button}" />
+                <!-- END: setup -->
+
+                <!-- BEGIN: cancel -->
+                <input type="hidden" name="openid.return_to" value="{return_to}" />
+                
+                <p>{unable_label}</p>
+                
+                <p>{identity_not_matching_label}</p>
+                
+                <p>{switch_user_label}</p>
+                
+                <input type="submit" name="op" id="edit-cancel" value="{cancel_button}" class="form-default" />
+                <!-- END: cancel -->                
+            </form>
+            <!-- END: openid_consent -->
+            
+            <!-- BEGIN: blocks -->
+                {blocks}
+            <!-- END: blocks -->
+
+            <!-- BEGIN: sites -->
+            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded" >
+            <input name="q" type="hidden" value="my/sites" />
+            <input name="tk" type="hidden" value="{token}"/>
+            <input name="update-all" type="hidden" value="1"/>
+            <table id="sites">
+                <thead>
+                    <tr>
+                        <th>{realm_label}</th>
+                        <th>{last_time_label}</th>
+                        <th>{auto_release_label}</th>
+                        <th>{remove_label}</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    <!-- BEGIN:realm -->
+                    <tr>
+                        <td><span class="realm">{realm_name}</span></td>
+                        <td><span class="last-time">{last_time}</span> {last_time_formatted}</td>
+                        <td><input class="{realm_class}" type="checkbox" value="1" name="autorelease[{realm}]" {auto_release}/></td>
+                        <td><input type="checkbox" value="1" name="remove[{realm}]"/></td>
+                    </tr>
+                    <!-- END: realm -->
+                </tbody>
+            </table>
+            <input type="submit" name="op" id="edit-submit" value="{submit_button}" class="form-default" {disabled} />
+            </form>
+            <!-- END: sites -->
+
+            <!-- BEGIN: otp -->
+            <p>{about_otp}</p>
+
+            <p>{otp_warning}</p>
+            
+            <p>{setup_otp}</p>
+
+            <ol>
+                <li>{download_app}</li>
+                <li>{add_account}
+                    <div class="otp-key"><span class="otp-letters">{secret1}</span><span class="otp-letters">{secret5}</span><span class="otp-letters">{secret9}</span><span class="otp-letters">{secret13}</span></div>
+                    <div id="otp-key-qr"></div>
+                </li>
+                <li>{verify_code}</li>
+            </ol>
+
+            <script src="{base_path}html/jquery.qrcode.js" type="text/javascript"></script><script type="text/javascript">$('#otp-key-qr').qrcode("{qr}");</script>
+
+            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded">
+                <input type="hidden" name="q" value="otp"/><input type="hidden" name="tk" value="{token}"/>
+                
+                <div class="form-item">
+                    <label for="edit-otp">{otp_label}</label>
+                    <input type="number" maxlength="6" name="otp" id="edit-otp" size="10" value="" autocapitalize="off" autocorrect="off" class="form-text required" />
+                </div>
+                <input type="submit" name="op" id="edit-submit" value="{submit_button}" class="form-default" />
+            </form>
+
+            <!-- END: otp -->
+            
+            <!-- BEGIN: upgrade_access_denied -->
+            <p>{login_required}</p>
+            
+            <p>{edit_upgrade_php}</p>
+            
+            <ol>
+                <li>{edit_upgrade_php1}</li>
+                <li>{edit_upgrade_php2}</li>
+                <li>{edit_upgrade_php3}</li>
+                <li>{edit_upgrade_php4}</li>
+            </ol>
+            
+            <p>{simpleid_docs}</p>
+            <!-- END: upgrade_access_denied -->
+
+            <!-- BEGIN: upgrade_info -->
+            <p>{intro}</p>
+            
+            <p>{simpleid_docs}</p>
+            
+            <ol>
+                <li>{step1}</li>
+                <li>{step2}</li>
+            </ol>
+  
+            <p>{click_continue}</p>
+
+            <form method="post" action="{base_path}upgrade.php">
+                <input type="hidden" name="q" value="upgrade-selection" />
+                <input type="hidden" name="tk" value="{token}" />
+                <input type="submit" value="{continue_button}" />
+            </form>
+            <!-- END: upgrade_info -->
+            
+            <!-- BEGIN: upgrade_selection -->
+            <p>{version_detected}</p>
+            
+            <p>{original_version_label}: <strong class="upgrade-version original-version">{original_version}</strong></p>
+            
+            <p>{this_version_label}: <strong class="upgrade-version this-version">{this_version}</strong></p>
+            
+                <!-- BEGIN: selection_complete -->
+                    <p>{script_complete}</p>
+                    <!-- BEGIN: upgrade_access_check -->
+                    <div class="message unsecure">
+                        <p>{edit_upgrade_php}</p>
+                    </div>
+                    <!-- END: upgrade_access_check -->
+                <!-- END: selection_complete -->
+                
+                <!-- BEGIN: selection_continue -->
+                <p>{click_continue}</p>
+
+                <form method="post" action="{base_path}upgrade.php">
+                    <input type="hidden" name="q" value="upgrade-apply" />
+                    <input type="hidden" name="tk" value="{token}" />
+                    <input type="hidden" name="handle" value="{handle}" />
+                    <input type="submit" value="{continue_button}" />
+                </form>
+                <!-- END: selection_continue -->
+                
+            <!-- END: upgrade_selection -->
+            
+            <!-- BEGIN: upgrade_results -->
+            <p>{upgrade_complete}</p>
+            <!-- BEGIN: upgrade_access_check -->
+            <div class="message unsecure">
+                <p>{edit_upgrade_php}</p>
+            </div>
+            <!-- END: upgrade_access_check -->
+            
+            <div class="upgrade-results">
+            {results}
+            </div>
+            <!-- END: upgrade_results -->
+        </div></div>
+
+        <div id="footer">
+            <address>
+                SimpleID {version} &copy; Kelvin Mo &middot;
+                <a href="http://simpleid.org/docs/1/">{footer_doc}</a> &middot;
+                <a href="http://github.com/simpleid/simpleid/">{footer_support}</a>
+            </address>
+        </div>
+
+        <script type="text/javascript">
+        (function() {
+            var nav, nav_toggle, user, user_toggle;
+
+            nav = document.getElementById('nav');
+            nav_toggle = document.getElementById('nav-toggle');
+            user = document.getElementById('user');
+            user_toggle = document.getElementById('user-toggle');
+
+            if (nav) {
+                nav_toggle.onclick = function() {
+                    if (nav.className.indexOf('expand') !== -1) {
+                        nav.className = nav.className.replace(' expand', '');
+                        nav_toggle.className = nav_toggle.className.replace(' expand', '');
+                    } else {
+                        nav.className += ' expand';
+                        nav_toggle.className += ' expand';
+                    }
+                }
+            }
+
+            if (user) {
+                user_toggle.onclick = function() {
+                    if (user.className.indexOf('expand') !== -1) {
+                        user.className = user.className.replace(' expand', '');
+                        user_toggle.className = user_toggle.className.replace(' expand', '');
+                    } else {
+                        user.className += ' expand';
+                        user_toggle.className += ' expand';
+                    }
+                }
+            }
+        })();
+        </script>
+    </body>
+</html>
+<!-- END: main -->
+
+<!-- BEGIN: xrds --><?xml version="1.0" encoding="UTF-8"?>
+<xrds:XRDS xmlns="xri://$xrd*($v*2.0)" xmlns:xrds="xri://$xrds" xmlns:simple="http://xrds-simple.net/core/1.0">
+    <XRD version="2.0">
+        <!-- BEGIN: user_xrds -->
+        <Service priority="10">
+            <Type>http://specs.openid.net/auth/2.0/signon</Type>
+            <URI>{simpleid_base_url}</URI>
+            <!-- BEGIN: local_id2 -->
+            <LocalID>{local_id}</LocalID>            
+            <!-- END: local_id2 -->
+        </Service>
+        <Service priority="20" xmlns:openid="http://openid.net/xmlns/1.0">
+            <Type>http://openid.net/signon/1.0</Type>
+            <URI>{simpleid_base_url}</URI>
+            <!-- BEGIN: local_id -->
+            <openid:Delegate>{local_id}</openid:Delegate>
+            <!-- END: local_id -->
+        </Service>
+        <!-- END: user_xrds -->
+        <!-- BEGIN: op_xrds -->
+        <Service>
+            <Type>http://specs.openid.net/auth/2.0/server</Type>
+            <!-- Keep old domain -->
+            <Type>http://simpleid.koinic.net/type/version#{version}</Type>
+            <!-- BEGIN: type --><Type>{uri}</Type><!-- END: type -->
+            <URI>{simpleid_base_url}</URI>
+        </Service>
+        <!-- END: op_xrds -->
+    </XRD>
+</xrds:XRDS>
+<!-- END: xrds -->
+
+<!-- BEGIN: xrd --><?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+    {signature}
+    <!-- BEGIN: user_xrd -->
+    <Subject>{acct_uri}</Subject>
+    <Alias>{simpleid_user_uri}</Alias>
+    <!-- BEGIN: local_id -->
+    <Alias>{local_id}</Alias>
+    <!-- END: local_id -->
+    <Link rel="http://specs.openid.net/auth/2.0/provider" href="{simpleid_base_url}" />
+    <!-- END: user_xrd -->
+    <!-- BEGIN: xrd_link -->
+    <Link rel="{rel}" href="{href}" />
+    <!-- END: xrd_link -->
+</XRD>
+<!-- END: xrd -->
