use pregenerated types where possible