reorganize for proper namespacing