Move implementations out of the header