Working for the most part

Need to go through TODOs