Migration to 0.4

Hello Ralph,

This pull request contains incompatible changes, enhanced use of API and specialized example to demonstrate some modules. This time, I confirmed that 'mvn package' does not throw any error, but still double check is needed in runtime. Feel free to modify this changes.