restructure to place everything in a namespece so global namespace is not polluted