bug fix and update TODO