Not a problem! In terms of setting up PotatoDistributors, it's going to depend a bit upon what your model is going to do. If the producers just need to "contact" them to have an action take place and the decision making doesn't change, then you might be able to use a Singleton pattern along with dependency injection to pass the current SimState for anything that the distributor might need. This is the same pattern that I followed in a recent ABM I wrote (in preparation for peer review, email me directly if you want a link to the source code).
In terms of displaying information in MASON - that is a bit trickier, but depending upon what you are trying to display then sometimes you can get away with inheritance or just defining an interface so you only have to sort out the display once. So far my ABMs tend to follow some of the OOP patterns that I picked up over the years and have two layers to them. The first layer is the material that you would expect to see discussed in an ODD write-up while the second layer tends to be more technical aspects that just manage the simulation and capture data from the agents. Getting comfortable with abstract classes and interfaces helps since that tends to be necessary to separate the the ABM concepts from the more "administrative" aspects such as displaying information.