You could make the option defaults more easily visible if you just do

```js
angular.extend(scope, { 
  delay: 3000,
  position: 'bottom'
}, opts || {});
```

This way opts overrides any defaults, and the defaults just exist on scope.