some improvements on form