changed Lib source interface to fix duplicate definitions of types, used in multiple libs