angular.module('project', ['firebase']).
  value('fbURL', 'https://slug-dub.firebaseio.com/presents').
  factory('Presents', function(angularFireCollection, fbURL) {
    return angularFireCollection(fbURL);
  }).
  config(function($routeProvider) {
    $routeProvider.
      when('/', { controller: InitialController, templateUrl: 'initial.html' }).
      when('/game', { controller: GameController, templateUrl: 'game.html' }).
      when('/stats', { controller: StatsController, templateUrl: 'stats.html' }).
      otherwise({ redirectTo: '/' });
  });

function InitialController($scope, $location, $timeout, angularFire, Presents) {
  var ref = 'https://slug-dub.firebaseio.com/game';
  angularFire(ref, $scope, 'game', {}).
  then(function() {
  });

  $scope.startGame = function() {
    $location.path('/game');
  };
}

function GameController($scope, $timeout, $location, angularFire, Presents) {
  var ref = 'https://slug-dub.firebaseio.com/game';
  angularFire(ref, $scope, 'game', {});
  $scope.presents = Presents;

  $scope.addPresent = function() {
    Presents.add({"description": $scope.presentDescription,
                  "totalSteals": 0,
                  "stolenThisRound": false}, function() {
      $timeout(function() { $location.path('/game'); });
    });

    $scope.presentDescription = "";
    $scope.game.currentRound += 1;

    // New round so all presents should return to "Up for grabs"
    angular.forEach($scope.presents, function(present) {
      present.stolenThisRound = false;
    });
  };
}

function StatsController() {

}


angular.module('project', ['firebase']).
  value('fbURL', 'https://slug-dub.firebaseio.com/presents').
  factory('Presents', function(angularFireCollection, fbURL) {
    return angularFireCollection(fbURL);
  }).
  config(function($routeProvider) {
    $routeProvider.
      when('/', { controller: InitialController, templateUrl: 'initial.html' }).
      when('/game', { controller: GameController, templateUrl: 'game.html' }).
      when('/stats', { controller: StatsController, templateUrl: 'stats.html' }).
      otherwise({ redirectTo: '/' });
  });

function InitialController($scope, $location, $timeout, angularFire, Presents) {
  var ref = 'https://slug-dub.firebaseio.com/game';
  angularFire(ref, $scope, 'game', {}).
  then(function() {
  });

  $scope.startGame = function() {
    $location.path('/game');
  };
}

function GameController($scope, $timeout, $location, angularFire, Presents) {
  var ref = 'https://slug-dub.firebaseio.com/game';
  angularFire(ref, $scope, 'game', {});
  $scope.presents = Presents;

  $scope.addPresent = function() {
    Presents.add({"description": $scope.presentDescription,
                  "totalSteals": 0,
                  "stolenThisRound": false}, function() {
      $timeout(function() { $location.path('/game'); });
    });

    startNewRound();
  };

  function startNewRound() {
    $scope.presentDescription = "";
    $scope.game.currentRound += 1;

    // New round so all presents should return to "Up for grabs"
    angular.forEach($scope.presents, function(present) {
      present.stolenThisRound = false;
    });
  }
}

function StatsController() {

}


Refactor into method