forget to add function prototypes