further bdd implementation