1. normalizing file spacing (2 empty lines after "namespace" statement, 1 empty line after "use" statement)
2. replacing PageFactory::getElement (used $elements array) with PageFactory::initElements (using class variables with @find-by annotation)
3. adding IWebElement interface and WebElementProxy class for web element lazy loading
4. rearranging "use" statements to look nicer
5. fixing docblocks to be multiline in all cases (would then be used in bytecode caching)
6. renaming "WrapsElement.php" to "IWrapsElement.php", because of interface (not class) inside
7. adding "open" method to "Page" class, that would open url, associated with that page without need to specify it directly
8. factory creation is made through singleton allowing once factory instance be shared across multiple Mink sessions
9. url of the page can be optionally set using @page-url('/relative/url/to/the/page') annotation in Page class descendant class without need to override class constructor
10. all, but How::LINK_TEXT and How::PARTIAL_LINK_TEXT element location ways from Selenium are now supported by WebElement
Adding example usage code
1. reformatting composer.json
2. adding dependency on "php-annotations" package without hopes, that local repository override will work