Port to Groovy

Port to Groovy.
Add more Reactive stuffs.
Remove .idea from gitignore.