Our initial pull

This is an initial pull request from Jackson's repo. It contains the beginnings of some modifications, but is mostly still identical to Jackson's code.