Lots of changes and modifications. Some new files added.