added necessary prototypes