improved naming and dropped using namespace std