added require different forms