Starting to move implementation back into header.
I think it might have been a mistake to not do this fist time.