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
Fix test
Add comment