develop the build logic and the test