refactoring
namespace and clean up