better re-factoring of form