Fully functional, with a sufficient amount of error checking.  Code will be commented and reorganized so its easy to follow