Fix some bugs add TODO