massive change to cpp