basic programming components