handling async in play