This will be further refactored in 

https://bugzilla.mozilla.org/show_bug.cgi?id=980092