Second Commit lots of changes.