Add a more dynamic scripting system