add a service for storing errors
use an error callback rather than scope broadcasting
use new error service in controller