http://people.emich.edu/acoykenda/550/hmwk.htm