update TODO thoroughly