with test cases and indivisual components