added the code I have completed so far.  NOTE: all the comments are still from Aaron's original interfaces