Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Updated the variant creation methods to be type safe.

By building directly from the API methods when available.
Also updated null arguments to Option.
Merge pull request #6 from elmer-garduno/serialize_java_api_objects

Serialize java api objects