Implementation is now header only.