a bit of function prototypes