update to be multi-threaded ... because cool, and required