Alpha0.5

Implementation of the draft API.
In progress.
Hmm ok so you are thinking about this as a utility class outside the library?  I think if you include example code of how you imagine this being used it would be clearer to me.