added mock and test driven development