scripting interface