changed functions in transform class to protected virtual