dsl stuff; still needs some more work on the system before it can replace the scripting layer