Support writing needed extension types

I added some additional argument lists. Let me know if you think this makes it better or worse.