understanding prototypes