Async all the way, baby
Instantiate also suites asynchronously
Remove unnecessary cache update
Extract method
Simplify
Extract method
Extract method
Reduce method visibility
Extract method
Shorten
Add comment on synchronisation