refactored out independent transform to its own file