adding quite a number of changes