Using a Controller design pattern to communicate with processing modules