modified prototype