changes. avoid taking matrix transposes. push code to base class.