generate functions prototypes