Modified Utils files to be truly multi-threaded
Added a callback structure to run when thread finishes work