Switch to cache then network loading to improve start up time

Improve adapters for better performance
Pull list and search logic out into abstract classes