add primitive functions