Move implementation out of the header