backend: remember to require 'thread' here