add TDD, BDD and CI