Fixup todos and improve the API.