So Jeff. For some reason it is still not working correctly and I believe it has something to do with Scope. Let me explain: 

```
angular.module('FlashCardz').directive 'cardView', ->
  return (scope, element, attrs) ->

    moveForward = (activeCard, activeCardIndex, cards) ->
      console.log activeCard
      console.log scope.data.cardData.activeCard
      if activeCard.id is cards[activeCardIndex].id
        if activeCard is _.last(cards)
          element.find('.next').hide()
        else
          scope.data.cardData.activeCard = cards[activeCardIndex + 1]
        scope.$apply()

    moveBackward = (activeCard, activeCardIndex, cards) ->
      console.log activeCard
      console.log scope.data.cardData.activeCard
      if activeCard.id is cards[activeCardIndex].id
        if activeCard is _.first(cards)
          element.find('.back').hide()
        else
          scope.data.cardData.activeCard = cards[activeCardIndex - 1]
        scope.$apply()

    element.find('.move').on 'click', (e) ->
      activeCard = scope.data.cardData.activeCard
      cards = scope.data.cardData.cards
      activeCardIndex = cards.indexOf activeCard
      direction = $(e.target).data().direction
      element.find('.move').show()
      console.log activeCard
      if direction is 'back'
        moveBackward(activeCard, activeCardIndex, cards)
      else
        moveForward(activeCard, activeCardIndex, cards)
      # buttonToggle()
      console.log activeCard
      console.log scope.data.cardData.activeCard
```

I have followed your recommendation but what ends up happening is the `activeCard` is one card behind `scope.data.cardData.activeCard` every single time. You will notice the logs I have made in this code, only the last log is updated to the current `activeCard` like it should be. This is the only one that accurately reflects what is being displayed on the page also. I believe it could be because `scope.$apply()` is getting called at the end of the `moveForward` and `moveBackward` functions. This is the way it should be. However, we are trying to have the element toggled before the new information is applied to the old scope. I have two possible solutions. One, is to leave the code like this which worked but is not DRY. Or two, I can put this function in another directive and reference the necessary information there since it isn't tied to any information taking place in this directive, which would be DRY.