added documentation, prototypes, and workflow