allow dynamic scripting