separate responsibilities