Some work to reduce recursive dependencies between classes