Used to the template to construct the requested functions