Alpha0.5

Implementation of the draft API.
In progress.
Don't forget to add inline docs to this public method