Hide more details of the SmokeContainer and make it harder to use it incorrectly. Improve the generator some more so it is more capable of outputing types which are correct for D.