take an outptr for the return value
namespaced enum workaround