Posting initial code.  Code works but is fairly bare-bones right now.