filling in primitive api