test-first solutions