<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_routertype(self, context, routertype):
 """Creates a router type. Also binds it to the specified hosting device template. """

        LOG.debug("create_routertype() called. Contents %s", routertype)
        rt = routertype['routertype']
        with context.session.begin(subtransactions=True):
            routertype_db = l3_models.RouterType(
                id=self._get_id(rt),
                tenant_id=rt['tenant_id'],
                name=rt['name'],
                description=rt['description'],
                template_id=rt['template_id'],
                ha_enabled_by_default=rt['ha_enabled_by_default'],
                shared=rt['shared'],
                slot_need=rt['slot_need'],
                scheduler=rt['scheduler'],
                driver=rt['driver'],
                cfg_agent_service_helper=rt['cfg_agent_service_helper'],
                cfg_agent_driver=rt['cfg_agent_driver'])
            context.session.add(routertype_db)
        return self._make_routertype_dict(routertype_db)