I’ve been doing some work with form objects/form models recently, and have referred to this series a few times.