added spinner support
(places busy indicator in overlay to temporarily block the user from interacting with the page)
add naive error handler