forms refactored