implemented a system to support multiple prototypes