lots of changes..lots