Experimental registrar
Made registrar accept any compile-time type rather than being template specific