Morality as Cooperation: A Problem-Centred Approach