so many tightly coupled classes