Initial commit.

Still undecided on naming of methods, but this is the skeleton of what I want
to do.