Added an abstract class for transformations