Update to begin second attempt at a library.
Not everything is moved over yet, but I'm tired so this is what we have so far.