form functions work