Eval async instead of timeout

@IanMayo please test the app under this branch before merging, I did it but I don't know if I cover 99% of possible cases... Just a web based app testing would be enough.