functions prototypes added