implementing scripting system