add component recipe