start of class interface.
Many changes, might even work, but untested.