Attempting to refine logic - adding colours and making inheritance between function objects more logical