CodeKata assignment from: http://codekata.com/kata/kata08-conflicting-objectives/