Style of dual implementation and headers derivations is take from bb7067f882bf3c53ea68780a8ec0a7117f563253.