added tranformation function