* added some comments and TODO