+(defun set-callback (callback)
+ "SET-CALLBACK CALLBACK => RESULT
+
+ARGUMENTS AND VALUES:
+
+ CALLBACK: a function that can take netlogo code
+ RESULT: undefined
+
+DESCRIPTION:
+
+ Sets the means by which the interface can call arbitrary netlogo code."
+ (setf *current-callback* callback))
+
+(defun set-current-interface (interface)
+ "SET-CURRENT-INTERFACE INTERFACE => RESULT
+
+ARGUMENTS AND VALUES:
+
+ INTERFACE: a list of widgets for display
+ RESULT: undefined
+
+DESCRIPTION:
+
+ Sets the currently running model to INTERFACE.
+
+ The widgets set here are comprised of the bare necessary
+ to run the engine with or without an actual visual component."
+ (setf *current-interface* interface))
+
+(defun interface (model)
+ "INTERFACE MODEL => INTERFACE
+
+ARGUMENTS AND VALUES:
+
+ MODEL: an object representing the model
+ INTERFACE: a list of widgets for display
+
+DESCRIPTION:
+
+ INTERFACE returns the widgets in MODEL, used for display, or
+ setting with SET-CURRENT-INTERFACE."
+ (model-interface model))
+