Add more user types
Add javadocs