     @currentPosition = @grid.randomCrossStreets()
     @_refreshPosition()
     @currentStreetDirection = StreetDirection.CROSS
+    @currentTimer = null
 
   _refreshPosition: () ->
     @source.attr('x', @currentPosition.getX())

    if PointHelper.compare(@currentPosition, target, @grid.getStreetSize())
      # I am on spot
      return

    if @grid.isACrossStreet(@currentPosition)
      @currentStreetDirection = StreetDirection.CROSS

    if PointHelper.compare(@currentPosition, point, 0)
      callback()
    else
      @currentTimer = setTimeout(
                                  () =>
                                    k = -1
                                    if orientation is Orientation.BOTTOM or orientation is Orientation.RIGHT
                                      k = 1

                                    if direction is StreetDirection.HORIZONTAL
                                      @currentPosition.setX(@currentPosition.getX() + k)
                                    else
                                      @currentPosition.setY(@currentPosition.getY() + k)
                                    @_refreshPosition()
                                    @_animateTo(point, direction, orientation, callback)
                                ,
                                  1 / Car.SPEED
                                )

  moveTo: (target) ->
    return unless @grid.isWithinAStreet(target)
