added context for selectors
added a few comments
added fail callbacks
removed complex selectors