Non-equilibrium Thermodynamics