Advanced challenge: make it self-hosting.