Non-equilibrium thermodynamics