update TODO: this should pretty much work now