Final program complete and tested