An implementation of the Page Object Pattern in Selenium along with a bunch of other features like KeyWords for oft used Webdriver calls, driver lifecycle management, effective logging and Test Script Templates
The singleton page factory is useful for having Page Objects that maintain state , for example the 'state' name can be used for returning appropriate formData
This will help to store the last set state and make it relevant while gathering up formData