adding lots of changes