added tests, re-factored the namespace and added more fields