Good is related to Cue. Cue is related to Shape. 
Challenge is a type of Objection. Challenge is related to Difficult. Difficult is the opposite of Simple. Programming cannot be Simple. 
Good <--RelatedTo--> Cue <--RelatedTo--> Shape 
Objection <--IsA-- Challenge <--RelatedTo--> Difficult <--Antonym--> Simple <--NotHasProperty-- Programming 