FEATURE: make form field an abstract class