This reverts commit 26fa17ed. This reverts commit 4403c4f9. There is still an ODR issue causing linker errors, investigating.