re-introduce safety, purity and nothrow