Similar to:
XACC 280 Week 3 Appendix M