I know I still have docs to add, but would like feedback/thoughts on the API/implementation.
This change is