implemented teleport, with a few remaining regressions