functions specifications