how to make functional prototypes