Did a pass over the whole variant api.
Cleaned up sink memory usage.
Fix (hopefully) memory leak.
Self-review