fuck CRTP, D is too awesome