Added Namespacing and better documentation