https://www.lisaclarke.net/2018/06/09/twip-form-and-function/
TWiP: Form and Function