Revised version. Better, but still needs work.