implement and design basic prototypes