program complete, just need to add comments