More work on the self-hosting implementation. This one might actually do it.