seperating responsibilities a bit