working on single responsibility stuff