TODO
----

1) Porting for MacOSX and Linux

2) Review the API

3) method load/save could be run in a new async thread.

