function prototypes added