almost there, some concurrency issue is still in the way