It does work fine for my simple physics code. But if I used your chipmunk library, it would be a lot better with a fixed timestep right? But how would I interpolate between states when chipmunk manages all the objects ?

So should I just pass the previous and current game state and the alpha value to the renderer? Or should have a method of the Game class that creates a new interpolating instance based on the previous current and alpha and then pass that to the renderer?

I call my states alpha, beta, and the interpolated one iota. Alpha is the newest tick, beta is the previous tick. I pass alpha and beta to my interpolator to create the new state, iota. iota is the one that the renderer reads to draw.