commit single responsibility principle