Copyright © University of Cambridge. All rights reserved.
You may want to take a look at Pair Products - it is a similar problem but offers a little more structure and support.