Whole Code with Updates 10-3-19.pdf