rerefactor World#opposite