Sigh. I can't even begin to say how many times I've written a clearly "procedural" package and found that I needed to make it object-oriented due to the need for information hiding externally, information sharing internally or simply needing "instance data".