Reuse _updatePosition() code