partial commit (add 50% of functional and unit tests)