form alter refactory