How do you solve circular reference problems like Class A has class B as one of its properties, while Class B has Class A as one of its properties?
How to do archite
interfaces are a good idea however if your looking for a quicker solution than redoing the architecture of so many things try building one dll class library that holds all your data structures your main project holds your UI that needs that data and then any other dlls you want to add can access that data structures dll as well so they have all the info they need to run but still can be separate- this is called the tri force design pattern -