add bch func