I'd recommend looking at the futurism lib in D.announce and see how much of this is already there ; )