Some general considerations on the api class:

* Add the javadoc for all method parameters.
* For those parameters that are optional, better have two method: one that doesn't have them, and another one that encapsulates all them in an Options object, so users don't have to call a method with lots of `null` parameters.