added ITransform protocol and setup transforms so that simple functions will work without em/trans