refactored Transformation interface to abstract class to prevent Java-7-related issues