exposed type manipulation helper functions