Implement the rest of the API
Look for Leaks (in progress)
Handle cleanup better (mostly complete)
