introduce namespaces and resolve class naming conflict with override_template