using six.moves.range