components not mandatory functional