Added a lot of things, still need threads