Also, I know indirect objects are not the topic right now, but I was wondering if one test to determine if a word is an indirect object is the "to" test. For example, in your example,
I gave my calico cats three balls of red yarn, the "to" test would be I gave to my calico cats three balls of red yarn.
That approach generally works, although sometimes you have to use the word “for.” For example, “Jan baked her cat a birthday cake.” => “Jan baked a birthday cake for [not “to”] her cat.” Also, notice how I put the sentence in a more natural order when using this “test.” There is no reason to say “Jan baked for her cat a birthday cake.”
Of course, the best approach is just to understand the concepts of direct and indirect objects. Generally, the direct object DIRECTLY receives the action of the verb. Even though I’m a dog person, I know Jan is going to bake the cake, not the cat; the cake receives the action of baking. Indirect objects generally tell things like for whom the action was done.
A third way to know which is which is to remember that the indirect object (when there is one) comes between the subject and the direct object. Maybe you can remember the name Sid (S
ndirect object, d
The only reason Jan introduced this concept was to note that the inclusion of objects does not move sentences out of the "simple sentence" category and into one of the other categories (compound, complex, or compound-complex). So--even though it sounds like you have a handle on objects--don't worry if there is any confusion.