and done, everything except some TODOs
some TODOs done