Slightly different solution without message queues