rebuild with bind func