Though you define $kexAsyncLoader as $q.defer(), $kexAsyncLoader is never resolved, right? Is there a reason why this is not just '$kexAsyncLoader = {}". 

Going to look through the code more of course later on tonight.