pass form, so that functions can be overwritten