new opaqe types for future interfaces
get rid of generated interfaces when doing a clean