this is a total function, so please just remove the word “partial” (here and below)