Reorganise, and add a language with effects