moved requires to tensor