Based on Cellular Forms by Andy Lomas. http://www.andylomas.com/extra/andylomas_paper_cellular_forms_aisb50.pdf