Agreed. Make a class per layer of responsibility. This is a good chance top break this out cleanly into packages