if it's still using the main thread despite being made to run asynchronously, isn't it just the same as synchronous execution? if so should you employ workers?