moving classes around to reflect responsibility better