Second attempt at making it work.

With a D-style approach.