export to module systems and fix constructors