Added pedantic conformance + C++11 style exception throwing (mainly noexcept keyword)