Final version - I hope.