Yes that sounds like the correct way to set it up.
To check what your script is doing (or if your script is even running) it is helpful to add logging in various places. For example, you can add calls to 'Console.WriteLine' to add a log output to the Event Log window.
For example you can do something like this (simplified example code):
public object Execute(ThemeContentItem item, object value, string parameter, ISimulation sim)
{
Console.WriteLine("Script execution started.");
This way you can follow via the logging in the Event Log where the execution flow is going and if the code is even reached.