Lots of additions, no addition of threading yet