Since you've declared an angular module, you should capture the module and use it to define your controller via:

```javascript
var taggers = angular.module('taggers', ['ui.bootstrap']);
taggers.controller('TaggersCtrl', function($scope, $http) {
...
});
```

This is the recommended way to do it, as it also lets you define directives and services using the module. Unfortunately, the angular docs show the simple version ```var TaggersCtrl = function(...``` which is for trivial apps only.

_Even better_ : a problem that comes up if we want to minify our javascript down the road is the use of function argument naming to declare angular injectibles - like `$scope` and `$http`. During minification, these variables can be renamed by the minifier, which means angular won't be aware of the need to inject. To guard against this, you can specify injectibles as strings using an array argument to the controller method:

```javascript
var taggers = angular.module('taggers', ['ui.bootstrap']);
taggers.controller('TaggersCtrl', ['$scope', '$http', function(scope, http) {
// notice I've renamed the arguments to the function to no longer have the '$'
// prefix. You can really name them anything you want once you've specified the
// injectibles as the first elements of the array.
...
}]);
```