Very messy clouds and their pointers everywhere. And colors the cloud in the wrong callback. Needs generic cleanup. Use the cloud_ to pass data, and use the mutex