dry and unit test