Pull out some Namespace functionality to be shared with other custom implementations
Reorganize Namespace code