Move implementation from header into CPP files