form can follow function