Make the helper class a private class of the main form. Have the main form create an instance of the helper class passing itself to the object as its "owner." The private class can access the form and do what it needs to do to update the controls. When it comes time for an update, the form can call an "Update" method on the child object. However, an approach that's just as good in these situations is to keep update code in the main form class only factor it out into its own source code file. Use C#'s partial feature to seperate it out. In my opinion, this helps modularize the code without the need for an extra class. In some situations, you do actually want to factor functionality into a serparte class, but in other cases, like this one, in my opinion, partioning the code while keeping it in the same class is enough.