Separate api loading logic from the rest of library.
Extract GitHub API data loader (and make requests async).
Add option to define root element template. Add refresh() method API
Modularize library. Make all requests async. Config option to define root element.