basic form semi-functional