Reorganisation + improved exception safety