fixed warnings triggered by uninitialized objects; using std::string empty() method instead of nasty empty strings comparisons
restored copyright notices