https://123dok.net/document/qmj5rl08-heuristic-approach-resolving-class-responsibility-assignment-case.html