lots of changes made