add some doc, change bind to extend