Starting on threads, modeling after boost::thread. Stoped at line 281 in detail/thread.hpp