[blame] implement functions