cleanup and code review. Target and Exclude are optional according to the spec, so make it so.