refactoring
added message handling
added push api
added some test cases
fixed pom