this one uses arrows to construct these diagrams