Fixing a bunch of opcode errors

I think I did this correctly. I had to make a number of 'private'
methods 'public' so they are accessible from children, and I had to
homogenize a number of method signatures.