modified prototype definition