Refactored `retrieve()` to be simple, created `prepare()` to prep get templates, refactored `init()` to implement the Promises returned from `retrieve()` & `prepare()` for a clean separation of concerns