Let's make this a cpp