defsystem macro