Reorder headers
Throw std::errc instead of arbitrary string