Moved implementations back into header file