Provide a multi-threaded version of implmentation