Incorporated Michael's changes, suggestions and many more...