added transform functionality