wip
diff --git a/src/arrowtypes.jl b/src/arrowtypes.jl
index f426d37..df800ff 100644
--- a/src/arrowtypes.jl
+++ b/src/arrowtypes.jl
@@ -143,16 +143,19 @@
 default(::Type{Dict{K, V}}) where {K, V} = Dict{K, V}()
 default(::Type{NamedTuple{names, types}}) where {names, types} = NamedTuple{names}(Tuple(default(fieldtype(types, i)) for i = 1:length(names)))
 
-const JULIA_TO_ARROW_TYPE_MAPPING = Dict{Symbol, Tuple{String, Type}}(
-    :Char => ("JuliaLang.Char", UInt32),
-    :Symbol => ("JuliaLang.Symbol", String),
-    :UUID => ("JuliaLang.UUID", NTuple{16,UInt8}),
+const JULIA_TO_ARROW_TYPE_MAPPING = Dict{String,Type}(
+    "JuliaLang.Char" => UInt32,
+    "JuliaLang.Symbol" => String,
+    "JuliaLang.UUID" => NTuple{16,UInt8},
 )
 
-istyperegistered(::Type{T}) where {T} = haskey(JULIA_TO_ARROW_TYPE_MAPPING, nameof(T))
+arrownameof(T) = string("JuliaLang.", T)
+
+istyperegistered(::Type{T}) where {T} = haskey(JULIA_TO_ARROW_TYPE_MAPPING, arrownameof(T))
 
 function getarrowtype!(meta, ::Type{T}) where {T}
-    arrowname, arrowtype = JULIA_TO_ARROW_TYPE_MAPPING[nameof(T)]
+    arrowname = arrownameof(T)
+    arrowtype = JULIA_TO_ARROW_TYPE_MAPPING[arrowname]
     meta["ARROW:extension:name"] = arrowname
     meta["ARROW:extension:metadata"] = ""
     return arrowtype
@@ -177,10 +180,11 @@
     return nothing
 end
 
-function registertype!(juliatype::Type, arrowtype::Type, arrowname::String=string("JuliaLang.", string(juliatype)))
+function registertype!(juliatype::Type, arrowtype::Type)
     # TODO: validate that juliatype isn't already default arrow type
-    JULIA_TO_ARROW_TYPE_MAPPING[nameof(juliatype)] = (arrowname, arrowtype)
-    ARROW_TO_JULIA_TYPE_MAPPING[arrowname] = (juliatype, arrowtype)
+    name = arrownameof(juliatype)
+    JULIA_TO_ARROW_TYPE_MAPPING[name] = arrowtype
+    ARROW_TO_JULIA_TYPE_MAPPING[name] = (juliatype, arrowtype)
     return
 end