user dependent function prototype