Totally Working

With more error handling and comments.