first prototype functions'