added differential rotation