splitting spthread.h up into different files to make it more manageable