Playing around with method curring to retain type
Adding Async mode,Refactoring class structure
Refactor addition and started on java api
Cleaning up api