use async instead of forkIO with MVar

addresses #52